

const mock = {
  // 数据
  list: [],
  /**
   * 发起请求
   * @param {{url:string,method:string,data:object}} options 
   */
  request(options) {
    
    for (let item of this.list) {
      if (new RegExp(item.method,'i').test(options.method)) {
        if (item.url instanceof RegExp) {
          if (item.url.test(options.url)) {
            return item.callback(getOptions(options))
          }
        } else {
          if (item.url == options.url) {
            return item.callback(getOptions(options))
          }
        }
      }
    }
    
    console.error('请求无效')
  },
  /**
   *  添加 api mock 处理
   * @param {string} url 
   * @param {string} method 
   * @param {(options:{url:string,data:object})=>} callback 
   */
  Mock(url, method, callback) {
    this.list.push({
      url,
      method,
      callback
    })
  },
  
}


function getOptions(options){
  return {
    url:options.url,
    data:options.data
  }
}
export default mock